Lambdas হল রুবিতে একটি বিশেষ ধরনের Proc যা ফাংশনাল প্রোগ্রামিংয়ের ধারণা অনুসরণ করে। একটি lambda হল একটি anonymous function (নামবিহীন ফাংশন), যা একটি পরিবর্তনশীল সংখ্যা বা আর্গুমেন্ট গ্রহণ করতে পারে এবং একটি Proc অবজেক্ট হিসেবে কাজ করে।
১. Lambda Syntax
রুবিতে lambda তৈরি করার জন্য দুটি প্রধান উপায় রয়েছে:
lambdaমেথড ব্যবহার করে->(stabby lambda) ব্যবহার করে
Syntax ১: lambda মেথড ব্যবহার করে
my_lambda = lambda { |arg1, arg2|
# function body
puts "Argument 1: #{arg1}, Argument 2: #{arg2}"
}Syntax ২: -> (stabby lambda) ব্যবহার করে
my_lambda = -> (arg1, arg2) {
# function body
puts "Argument 1: #{arg1}, Argument 2: #{arg2}"
}২. Lambda Function উদাহরণ
এখন, আমরা কিছু উদাহরণ দেখি, যেখানে ল্যাম্বডা ব্যবহৃত হচ্ছে।
উদাহরণ ১: একটি সাধারণ Lambda
# Lambda creation
my_lambda = lambda { |x| puts "The value of x is #{x}" }
# Calling the lambda
my_lambda.call(10) # Output: The value of x is 10এখানে, একটি lambda তৈরি করা হয়েছে যা একটি আর্গুমেন্ট x গ্রহণ করে এবং সেটির মান আউটপুট করে। পরে call মেথডের মাধ্যমে ল্যাম্বডাটি কল করা হয়েছে।
উদাহরণ ২: Multiple Arguments সহ Lambda
# Lambda with multiple arguments
my_lambda = lambda { |x, y| puts "Sum of x and y is #{x + y}" }
# Calling the lambda
my_lambda.call(5, 3) # Output: Sum of x and y is 8এখানে, ল্যাম্বডাটি দুটি আর্গুমেন্ট (x এবং y) গ্রহণ করছে এবং তাদের যোগফল আউটপুট করছে।
উদাহরণ ৩: Return Behavior in Lambda vs Proc
একটি গুরুত্বপূর্ণ পার্থক্য হলো lambda এবং proc এর return আচরণ। Lambda-তে return শুধুমাত্র ল্যাম্বডার ভিতর থেকে বের হয়ে যায়, কিন্তু Proc-এ return মেথডটি পুরো মেথড বা ব্লক থেকে বেরিয়ে আসে।
def test_lambda
my_lambda = lambda { return "Returned from lambda" }
puts my_lambda.call
puts "After lambda"
end
test_lambdaআউটপুট:
Returned from lambda
After lambdaএখানে, return শুধুমাত্র ল্যাম্বডার ভিতরেই কাজ করছে এবং পুরো মেথডে চলে যাচ্ছে না। puts এর মাধ্যমে পরবর্তী লাইনের কোডও কার্যকর হতে পারে।
উদাহরণ ৪: lambda এবং proc এর পার্থক্য
def test_proc
my_proc = Proc.new { return "Returned from proc" }
puts my_proc.call
puts "After proc"
end
test_procআউটপুট:
Returned from procএখানে, Proc এর return মেথডটি পুরো test_proc মেথড থেকে বের হয়ে গেছে এবং পরবর্তী কোড কার্যকর হয়নি।
৩. Lambda vs Proc
| বৈশিষ্ট্য | Lambda | Proc |
|---|---|---|
| Return behavior | return শুধু ল্যাম্বডার মধ্যে কাজ করে | return পুরো মেথড বা ব্লক থেকে বেরিয়ে যায় |
| Argument checking | ল্যাম্বা আর্গুমেন্টের সংখ্যা চেক করে | প্রোক আর্গুমেন্টের সংখ্যা চেক করে না |
সারসংক্ষেপ
- Lambda রুবিতে একটি অ্যানোনিমাস ফাংশন, যা আর্গুমেন্ট গ্রহণ করতে পারে এবং সাধারণত একটি Proc অবজেক্ট হিসেবে কাজ করে।
- রুবিতে lambda তৈরি করার জন্য দুটি প্রধান পদ্ধতি রয়েছে:
lambda {}এবং-> {}। - Lambda এবং Proc এর মধ্যে একটি প্রধান পার্থক্য হল return behavior।
- Lambda সাধারণত ফাংশনাল প্রোগ্রামিংয়ের জন্য ব্যবহৃত হয় এবং এটি কোডে আর্গুমেন্ট চেকিং এবং আরও সুনির্দিষ্ট আচরণ প্রদান করে।
Read more